var app = angular.module("listApp", []),
	parid = UI.getParameterByName('parId');
var tay_time = UI.getTimes().times();

var timeout_json = function(data, $window) {
	if(data.returnCode == 999994) {
		var ss = 3;
		layer.msg(data.returnMessage + "！<strong class='Ajax_Out'>" + ss + "</strong> 秒后前往登录页", 50, -1);
		var picInt = setInterval(function() {
			if(ss >= 1) {
				ss = ss - 1;
				$('.Ajax_Out').text(ss);
			} else {
				clearInterval(picInt);
				try {
					$window.parent.location.href = data.returnData;
					$window.location.href = data.returnData;
				} catch(e) {
					log('timeout!')
				}
			}
		}, 1000);
		return false;
	}
}

app.config(function($httpProvider) {
	$httpProvider.defaults.headers.put['Content-Type'] = 'application/x-www-form-urlencoded';
	$httpProvider.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';
	$httpProvider.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
});

app.controller('tableCtrl', function($scope, $http, $window) {
	var vm = $scope.vm = {
		pageIndex: 1,
		pageSize: 10,
		channel_name: '',
		channel_url: '',
		channel_type: '',
		channel_id:''
	};
	var stpage = function(ii) {
		var jpage = [],
			index = vm.pageIndex,
			pcount = vm.pageSize,
			total = $scope.datas.totalRecords;
		len = 0,
			j = 0,
			pindex,
			tii = (ii - 1) / 2,
			sii = (ii - 1);
		if(total % pcount == 0) {
			len = total / pcount;
		} else {
			len = parseInt(total / pcount) + 1;
		}
		if(len >= ii) {
			if(index < ii) {
				for(var i = 1; i <= len; i++) {
					j++;
					if(j <= ii) jpage.push(i);
				}
			} else if(index >= len - sii) {
				var pindex = index < len - tii ? index - tii : len - sii;
				for(var i = pindex; i <= len; i++) {
					j++;
					if(j <= ii) jpage.push(i);
				}
			} else {
				for(var i = index - tii; i <= len; i++) {
					j++;
					if(j <= ii) jpage.push(i);
				}
			}
		} else {
			for(var i = 1; i <= len; i++) {
				jpage.push(i);
			}
		};
		$scope.pages_e = len;
		$scope.pages = jpage;
	}
	
	$scope.domAjax = function(e, id, name) {
		var ids = "";
		var names = "";
		$('.td .ui_checkbox.checked').each(function(){
			ids = ids+$(this).attr('data-id')+',';
			names = names+$(this).attr('data-name')+',';
		});		
		/*
	    *判断参数
		*参数是del发出请求删除一个频道
		*参数是delAll发出请求删除所有勾选中的频道
		*/
		if((e === 'del') || (e === 'delAll')) {
		//初始化ids为空，方便后面判断最少勾选一个。
			var channelId = "";
			if(e==='del'){
				var channelId = id;
				var channrlName= name;
				$.layer({
					title: "温馨提示：",
					shade: [0],
					area: ['230', 'auto'],
					dialog: {
						msg: '确定删除吗？',
						btns: 2,
						type: -1,
						btn: ['确定', '取消'],
						yes: function() {
							$http.get(basePath + 'channel/deleteChnnel.do?channel_id=' + channelId +'&channel_name=' + name).success(function(data) {
								var j = timeout_json(data, $window);
								if(j == false) {
									return false;
								}
								layer.msg(data.returnMessage, 1, -1);
								setTimeout(function() {
									if(window.reLength==1&&vm['pageIndex']>1){
										$scope.setAjax({"pageindex" : vm['pageIndex']-1});
									}else{
										$scope.setAjax();
									}
								},1000);
							});
						},
						no: function() {}
					}
				});
			}else{
				var channelId = ids;
				var name= names;
				//判断至少选一项
                if(channelId==""){
                	layer.msg('请选择至少一条数据！', 1, -1);
                    return false;
                }
				$.layer({
					title: "温馨提示：",
					shade: [0],
					area: ['230', 'auto'],
					dialog: {
						msg: '确定删除吗？',
						btns: 2,
						type: -1,
						btn: ['确定', '取消'],
						yes: function() {
							$http.get(basePath + 'channel/batchDeletes.do?channel_id=' + channelId ).success(function(data) {
								var j = timeout_json(data, $window);
								if(j == false) {
									return false;
								}
								layer.msg(data.returnMessage, 1, -1);
								setTimeout(function() {
									if(window.reLength==1&&vm['pageIndex']>1){
										$scope.setAjax({"pageindex" : vm['pageIndex']-1});
									}else{
										$scope.setAjax();
									}
								},1000);
							});
						},
						no: function() {}
					}
				});
			}
			

		} else if(e == "outExc") {
			//导出方法
			if(ids.length <= 0) {
				layer.msg('请你选中数据进行操作', 1, -1);
				return false;
			}
			ids = ids.substring(0, ids.length-1);
			var url = basePath + 'channel/exportExcelForPageData.do?channel_id='+ids;
			window.open(url,"_self");
		} else if(e == "show") {
			if(ids.length <= 0) {
				layer.msg('请您选中数据进行操作!', 1, -1);
				return false;
			}
		}else if(e == "innerExc"){
			var url = basePath + 'channel/exportExcelForModel.do';
			window.open(url,"_self");
		}
	}
	$scope.setAjax = function(obj) {
		if(obj) {
			vm["pageSize"] = obj.pagesize || vm["pageSize"];
			vm["pageIndex"] = obj.pageindex || vm["pageIndex"];
			//判断输入的页数是否大于最大的页数
			if(vm["pageIndex"]>$scope.pages_e){
				vm["pageIndex"]=$scope.pages_e;
			}
		}
		$scope.addparid = parid;
		vm.channel_type = $("#tapSelects").val();
		url = basePath + 'channel/queryByParams.do?sp=1&pageIndex=' + vm['pageIndex'] + '&pageSize=' + vm['pageSize'] + '&vtimes=' + new Date().getTime();
		if(vm.channel_name != undefined && vm.channel_name != "") url = url + '&channel_name=' + encodeURIComponent(vm['channel_name']);
		if(vm.channel_url != undefined && vm.channel_url != "") url = url + '&channel_url=' + encodeURIComponent(vm['channel_url']);
		if(vm.channel_type != undefined && vm.channel_type != "") url = url + '&channel_type=' + encodeURIComponent(vm['channel_type']);
		
	    var dLoading='';
	    $scope.dLoading=true;
	    $(".fuzzy").addClass("fuzzyCss");
		
		$http.get(url).success(function(data) {
			//获取本次返回数据的条数
			window.reLength = data.returnData.length;
			//取得当前页面的上一页、下一页
			$scope.prevIndex = parseInt($("#jsgo .cur").text())-1;
			$scope.nextIndex = parseInt($("#jsgo .cur").text())+1;
			
			var j = timeout_json(data, $window);
			if(j == false) {
				return false;
			}
			$('#zcont').removeClass('checked');
			$scope.datas = data;
			stpage(7);
			$scope.dLoading=false;
			 $(".fuzzy").removeClass("fuzzyCss");
			if($scope.dLoading==false){
				if(data.returnData.length <= 0) {
					layer.msg('无数据！', 1, -1);
				}
			}
			$scope.keyInt = "";
		});
	};
	$scope.setAjax();

	$scope.getAjax = function() {
		vm["pageIndex"] = 1;
		$scope.setAjax();
	}

	$(document).live('keyup', function(e) {
		e = e || window.event;
		if(e.keyCode == 13) {
			$scope.getAjax();
		}
	});
	
});

app.directive('pagen', function() { //页总数
	return {
		link: function($scope, ele) {
			ele.bind('click', function() {
				var pagesize = $(this).text();
				$(ele).addClass('cur').siblings().removeClass('cur');
				$scope.setAjax({
					"pagesize": pagesize,
					"pageindex": 1
				})
			})

		}
	}
});
app.directive('pageg', function() { //fenye
	return {
		link: function($scope, ele) {
			ele.bind('click', function() {
				var index = $(this).attr('data-href');
				/**
				 * 条件一：如果index为非数字，点击上一页，设为当前页码-1;
				 * 条件二：如果index为非数字，点击下一页，设为当前页码+1;
				 */
				if(isNaN(index) && $(this).attr('class')=="str"){
					index = parseInt($("#jsgo .cur").text())-1;
				}else if(isNaN(index) && $(this).attr('class')=="end"){
					index = parseInt($("#jsgo .cur").text())+1;
				}
				$scope.setAjax({
					"pageindex": index
				})
			})
		}
	}
});

app.directive('agSelect', function($http) {
	return {
		restrict: 'AE',
		scope: {
			groupName: '=groupName',
		},
		template: '<div class="ui_select"><input type="text" class="ui_s_t" ng-bind="stxt" ng-model="stxt" /><div class="ui_s_bk"><a href="javascript:void(0)" class="cur" data-id="0">全部</a><a href="javascript:void(0)" ng-repeat="key in datas | filter: {groupName:stxt} " ng-bind="key.groupName" data-id="{{key.groupId}}"></a></div></div>',
		controller: function($scope, $element, $attrs) {
			var a = $element.find('.ui_s_t'),
				b = $element.find('.ui_s_bk'),
				c = $attrs.ajaxs,
				d = $attrs.loadajaxs;
			$element.children('.ui_select').css('zIndex', 99);
			$element.bind('click', function() {

				if(c != undefined) {
					var isN = $('.radio_a1.checked').attr('data-val') || 0;
					$http.get(c + '?isSign=' + isN + '&vtimes=' + new Date().getTime()).success(function(data) {
						$scope.datas = data.returnData;
					});
				}
				b.slideDown();
			});
			$element.bind('mouseleave', function() {
				if(a.text() != "") {
					b.hide();
				}
			});
		},
		link: function($scope, $element, $attrs) {
			$scope.stxt = '全部';
			var a = $element.find('.ui_s_t'),
				b = $element.find('.ui_s_bk'),
				c = $attrs.ajaxs;

			a.click(function() {
				$scope.stxt = undefined;
				$scope.$apply();
			});
			b.find('a').live("click", function() {
				b.hide();
				$(this).addClass('cur').siblings().removeClass('cur');
				a.val($(this).text());
				$scope.stxt = $(this).text();
				if($attrs.groupName != undefined) {
					$scope.groupName = $(this).text();
					if(parseInt($(this).attr('data-id')) == 0) {
						$scope.groupName = undefined;
					}
				}
				$scope.$apply();
				return false;
			});
			$element.bind('mouseleave', function() {

				if((b.find('a').eq(0).text() != '全部') || (!$scope.stxt)) {
					if(b.find('a.cur').length) {
						b.find('a.cur').trigger('click')
					} else {
						b.find('a').eq(0).trigger('click');
					}
				} else {
					b.find('a').eq(1).trigger('click');
				}
				b.find('.ui_s_t').blur();
				b.hide();
				return false;
			});
		}
	}
});

$(function() {

	UI.message().base();
	laydate.skin('molv');

	$('#setPlatform,#setPlatform_div').hover(function() {
		$('#setPlatform_div').toggle();
	})

	$('#zcont').on('click', function() {
		$(this).toggleClass('checked');
		if($(this).attr('class').search('checked') > -1) {
			$('.td .ui_checkbox').addClass('checked');
		} else {
			$('.td .ui_checkbox').removeClass('checked');
		}
	});
	$('.td .ui_checkbox').live('click', function() {
		$(this).toggleClass('checked');
	});
	
	//只要有选项没被选中，那么全选就不会出现选中状态
	$(".td .ui_checkbox").live("click", function() {
		checkTrueFalse();
	});
	function checkTrueFalse() {
		var isTrue = true;
		$(".td .ui_checkbox").each(function() {
			var hasChecked = $(this).hasClass("checked");
			if(hasChecked == false) {
				isTrue = false;
				return;
			}
		});
		if(isTrue == false) {
			$("#zcont").removeClass("checked");
		} else {
			$("#zcont").addClass("checked");
		}
	}
	
	$('.tips').live('mouseenter', function() {
		layer.tips($(this).attr('data-tips'), this, {
			style: ['background-color:#fff; color:#666;padding:10px; font-size:13px;line-height:24px;', '#fff'],
			guide: 2,
			time: 1
		});
	});
	$('.tips').live('mouseleave', function() {
		$('.xubox_tips').remove()
	});

	$('.ui_select').each(function() {
		var _ = $(this),
			_a = _.find('.ui_s_t'),
			_c = _.find('.ui_s_bk'),
			_ca = _c.find('a');
		_a.live('click', function() {
			_c.slideToggle(200, "easeInSine");
		});
		_ca.live('click', function() {
			$(this).addClass('cur').siblings().removeClass('cur');
			_a.text($(this).text());
			$("#tapSelects").val($(this).attr("type"));
			_c.slideToggle(200, "easeInSine");
		});
		_c.live('mouseleave', function() {
			_c.stop(false, true).slideUp(200, "easeInSine");
		});
	});
	
	$('.ui_select').live('keyup', function(e) {
		var _ = $(this),
			b = _.find('.ui_s_bk'),
			di = 27;
		_.focus();
		e = e || window.event;
		var indx = b.find('a.cur').index() || 0;
		if(e.keyCode == 40) {
			var aindx = indx + 1,
				sct;
			if(rindx >= b.find('a').length) {
				rindx = b.find('a').length;
			}
			b.find('a').eq(aindx).addClass('cur').siblings('a').removeClass('cur');
			sct = aindx * di > 180 ? aindx * di - 80 : 0;
			b.scrollTop(sct);
		} else if(e.keyCode == 38) {
			var rindx = indx - 1,
				sct;
			sct = aindx * di > 100 ? aindx * di : 0;
			if(rindx <= 0) {
				rindx = 0;
			}
			b.find('a').eq(rindx).addClass('cur').siblings('a').removeClass('cur');
			sct = rindx * di > 180 ? rindx * di - 80 : 0;
			b.scrollTop(sct);
		} else if(e.keyCode == 13) {
			b.find('a.cur').trigger('click');
			_.blur();
			_.find('.ui_s_t').blur();
		}
		return false;
	});
	
	var editExaDataLayer = null;
	$('.editExaDataBtn').live('click', function() {
		var editExaDataLayer = $.layer({
			type: 1,
			title: false,
			area: ['500', '300'],
			border: [0], //去掉默认边框
			shade: [0.3, '#000'], //去掉遮罩
			closeBtn: [0, false], //去掉默认关闭按钮
			fadeIn: 500,
			move: "#editExaData_tile",
			page: {
				dom: '#editExaDataLayer'
			}
		});
		//自设关闭
		$('#editExaDataLayer > .closeBtn,#editExaDataLayer .cancelLayer').live('click', function() {
			layer.close(editExaDataLayer);
			document.getElementById("userdefinedFile").value = document.getElementById("importExcel").value = "";
		});
	});
	  
	$("#activityForm").resetForm().validate({  
        rules: {  
            "importExcel": {  
                required: true,  
                accept: "xls"  
            }  
        },  
        messages: {  
            "importExcel": {  
                required: "* 请选择上传文件 !",  
                accept: "* 请上传 xls格式的文件 !"  
            }  
        }, 
      	submitHandler: function() {  
          	$("#activityForm").ajaxSubmit({  
             	url: basePath + "channel/importExcelModel.do",  
              	type:"post",  
              	enctype:"multipart/form-data",  
              	contentType: "application/x-www-form-urlencoded; charset=utf-8",  
              	dataType:"json",  
              	success: function(data){  	
					if(data.returnCode == 10000) {
						layer.msg(data.returnMessage, 1, 10);
						setTimeout(function(){
							window.location.reload();	
						},1000);
					} else if(data.returnCode == 999994) {
						setUserTimeout(data);
					} else {
						layer.msg(data.returnMessage, 2, -1);
					}
				},
				error: function(message) {
					layer.msg(message, 2, -1);
				}  
        	});  
          	return false;  
      	}  
    }); 

	$("#editExaSubmitBtn").live("click", function() {
		$("form").submit();
	});
});